﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data;
using BL;
using Entities;

namespace StockVentas
{
    public partial class frmArticulos : Form
    {
        private frmVentas formVentas = null;
        private frmStockComp formStock = null;
        private DataTable tablaOrigen;
        private DataTable tablaBuscados;
        private DataTable tablaArticulos;
        public static string buscado;
        int filaActiva;

        public frmArticulos()
        {
            InitializeComponent();
            string strFilePath = Application.StartupPath + "\\Datasets_xml\\";
            tablaOrigen = new DataTable();
            tablaOrigen.ReadXml(strFilePath + "Articulos.xml");
            gvwDatos.DataSource = tablaOrigen;
            gvwDatos.Columns["IdArticuloART"].HeaderText = "Código";
            gvwDatos.Columns["DescripcionART"].HeaderText = "Descripción";
            gvwDatos.Columns["PrecioCostoART"].HeaderText = "Precio costo";
            gvwDatos.Columns["PrecioCostoART"].DefaultCellStyle.Format = "c";
            gvwDatos.Columns["PrecioCostoART"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            gvwDatos.Columns["PrecioPublicoART"].HeaderText = "Precio público";
            gvwDatos.Columns["PrecioPublicoART"].DefaultCellStyle.Format = "c";
            gvwDatos.Columns["PrecioPublicoART"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            gvwDatos.Columns["DescripcionWebART"].Visible = false;
            gvwDatos.Columns["ActivoWebART"].Visible = false;
            gvwDatos.Columns["IdItemART"].Visible = false;
            gvwDatos.Columns["IdColorART"].Visible = false;
            gvwDatos.Columns["TalleART"].Visible = false;
            gvwDatos.Columns["IdProveedorART"].Visible = false;
            gvwDatos.Columns["PrecioMayorART"].Visible = false;
            gvwDatos.Columns["DescripcionWebART"].Visible = false;
            gvwDatos.Columns["FechaART"].Visible = false;
            gvwDatos.Columns["ImagenART"].Visible = false;
            gvwDatos.Columns["ImagenBackART"].Visible = false;
            gvwDatos.Columns["ImagenColorART"].Visible = false;
            gvwDatos.Columns["NuevoART"].Visible = false;			
            gvwDatos.Sort(gvwDatos.Columns["DescripcionART"], ListSortDirection.Ascending);
            gvwDatos.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            btnAceptar.Enabled = false;
        }

        public frmArticulos(ref frmVentas f, int fila, DataTable tblArticulos)
        {
            InitializeComponent();
            formVentas = f;
            filaActiva = fila;            
            tablaArticulos = tblArticulos;
            string strFilePath = Application.StartupPath + "\\Datasets_xml\\";
            tablaOrigen = new DataTable();
            tablaOrigen.ReadXml(strFilePath + "Articulos.xml");
            gvwDatos.DataSource = tablaOrigen;
            gvwDatos.Columns["IdArticuloART"].HeaderText = "Código";
            gvwDatos.Columns["DescripcionART"].HeaderText = "Descripción";
            gvwDatos.Columns["PrecioCostoART"].HeaderText = "Precio costo";
            gvwDatos.Columns["PrecioCostoART"].DefaultCellStyle.Format = "c";
            gvwDatos.Columns["PrecioCostoART"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            gvwDatos.Columns["PrecioPublicoART"].HeaderText = "Precio público";
            gvwDatos.Columns["PrecioPublicoART"].DefaultCellStyle.Format = "c";
            gvwDatos.Columns["PrecioPublicoART"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            gvwDatos.Columns["DescripcionWebART"].Visible = false;
            gvwDatos.Columns["ActivoWebART"].Visible = false;
            gvwDatos.Columns["IdItemART"].Visible = false;
            gvwDatos.Columns["IdColorART"].Visible = false;
            gvwDatos.Columns["TalleART"].Visible = false;
            gvwDatos.Columns["IdProveedorART"].Visible = false;
            gvwDatos.Columns["PrecioMayorART"].Visible = false;
            gvwDatos.Columns["DescripcionWebART"].Visible = false;
            gvwDatos.Columns["FechaART"].Visible = false;
            gvwDatos.Columns["ImagenART"].Visible = false;
            gvwDatos.Sort(gvwDatos.Columns["DescripcionART"], ListSortDirection.Ascending);
            gvwDatos.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

        }

        public frmArticulos(ref frmStockComp f, int fila, DataTable tblArticulos)
        {
            InitializeComponent();
            formStock = f;
            filaActiva = fila;
            tablaArticulos = tblArticulos;
            string strFilePath = Application.StartupPath + "\\Datasets_xml\\";
            tablaOrigen = new DataTable();
            tablaOrigen.ReadXml(strFilePath + "Articulos.xml");
            gvwDatos.DataSource = tblArticulos;
            gvwDatos.Columns["IdArticuloART"].HeaderText = "Código";
            gvwDatos.Columns["DescripcionART"].HeaderText = "Descripción";
            gvwDatos.Columns["PrecioCostoART"].HeaderText = "Precio costo";
            gvwDatos.Columns["PrecioCostoART"].DefaultCellStyle.Format = "c";
            gvwDatos.Columns["PrecioCostoART"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            gvwDatos.Columns["PrecioPublicoART"].HeaderText = "Precio público";
            gvwDatos.Columns["PrecioPublicoART"].DefaultCellStyle.Format = "c";
            gvwDatos.Columns["PrecioPublicoART"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            gvwDatos.Columns["DescripcionWebART"].Visible = false;
            gvwDatos.Columns["ActivoWebART"].Visible = false;
            gvwDatos.Columns["IdItemART"].Visible = false;
            gvwDatos.Columns["IdColorART"].Visible = false;
            gvwDatos.Columns["TalleART"].Visible = false;
            gvwDatos.Columns["IdProveedorART"].Visible = false;
            gvwDatos.Columns["PrecioMayorART"].Visible = false;
            gvwDatos.Columns["DescripcionWebART"].Visible = false;
            gvwDatos.Columns["FechaART"].Visible = false;
            gvwDatos.Columns["ImagenART"].Visible = false;
            gvwDatos.Sort(gvwDatos.Columns["DescripcionART"], ListSortDirection.Ascending);
            gvwDatos.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            string opcion;
            if (rdArticulo.Checked == true)
            {
                opcion = "Articulo";
            }
            else
            {
                opcion = "Descripcion";
            }
            TextBox parametros = this.txtParametros;
            tablaBuscados = BL.ArticulosBLL.Buscar(tablaOrigen, parametros, opcion);
            gvwDatos.DataSource = tablaBuscados;
        }       

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            if (formVentas != null)
            {
                formVentas.gridDatos.Focus();
                DataRow[] foundRow = tablaArticulos.Select(
                  "IdArticuloART = '" + ((DataRowView)gvwDatos.CurrentRow.DataBoundItem)["IdArticuloART"].ToString() + "'");
                DataRow filaActual = foundRow[0];
                formVentas.gridDatos.CurrentCell = formVentas.gridDatos[2, filaActiva];
                formVentas.gridDatos["IdArticuloDVEN", filaActiva].Value = filaActual["IdArticuloART"].ToString();
                formVentas.gridDatos["Descripcion", filaActiva].Value = filaActual["DescripcionART"].ToString();
                formVentas.gridDatos["PrecioPublicoDVEN", filaActiva].Value = filaActual["PrecioPublicoART"].ToString();
                formVentas.gridDatos["PrecioCostoDVEN", filaActiva].Value = filaActual["PrecioCostoART"].ToString();
                formVentas.gridDatos.EditMode = DataGridViewEditMode.EditOnEnter;
                SendKeys.Send("{ENTER}");
                Close();
            }
            if (formStock != null)
            {
                formStock.gridDatos.Focus();
                DataRow[] foundRow = tablaArticulos.Select(
                  "IdArticuloART = '" + ((DataRowView)gvwDatos.CurrentRow.DataBoundItem)["IdArticuloART"].ToString() + "'");
                DataRow filaActual = foundRow[0];
                formStock.gridDatos.CurrentCell = formStock.gridDatos[2, filaActiva];
                formStock.gridDatos["IdArticuloMSTKD", filaActiva].Value = filaActual["IdArticuloART"].ToString();
                formStock.gridDatos["Descripcion", filaActiva].Value = filaActual["DescripcionART"].ToString();
                formStock.gridDatos.EditMode = DataGridViewEditMode.EditOnKeystroke;
                SendKeys.Send("{ENTER}");
                Close();
            }
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void gvwDatos_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            btnAceptar.PerformClick();
        }

    }
}
